# Project2

## Описание
Говорят, что проект доработан, всё улучшили, сейчас тут всё супер безопасно. Это так? Можно ли в них ещё вкладываться?

# WriteUp

Рассмотрев файлик в **Hex** редакторе понимаем, что перед нами исполняемый файл формата **Exe** для платформы **x64**.

Откроем его в **Ida**.

Беглым анализом видно, что проверка флага осуществляется посимвольно в функции **sub_140001510**, в которой значения сравниваются с массивом **byte_140007038**. 

В масиве видно, что данные зашифрованы.

Анализируя функцию **main**, видно, что шифрование введённых данных посимвольно осуществляется в функции **sub_140001480**, в которой находится обычное Xor шифрование но со сложным ключом, значение которого генерируется в функции **sub_140001400**.

Как видно, из последней функции, значение ключа зависит от первого символа введёных данных и генерируется специальным алгоритмом:

```с++
a2[0] = input_data[0];
for ( i = 1; i < 58; ++i )
  {
    a2[i] = (5 * a2[i - 1] + 5) % 255;
  }
```

Вспоминаем, что формат флага **RDGCTF{...}** и понимаем, что первый символ флага: **"R"**.
Всвязи с этим, мы можем легко сгенерировать ключ.

Расшифровываем данные из массива **byte_140007038** и получаем флаг.

## Flag

RDGCTF{n0_m0r3_m0n3y_f0r_pr0j3c75}
